package com.ylbh.modules.statistics.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ylbh.common.exception.NormalException;
import com.ylbh.common.pojo.statistics.dto.OperationStatisticsDTO;
import com.ylbh.common.pojo.statistics.vo.MembershipVO;
import com.ylbh.common.utils.PageUtils;
import com.ylbh.modules.business.entity.ShoppingUser;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 运营统计
 * @author czx
 */
public interface OperationStatisticsService extends IService<ShoppingUser> {

    /**
     * 所有类型用户数据统计
     * @return
     */
    List<Integer> queryUserType(OperationStatisticsDTO operationStatisticsDTO);

    /**
     * 类型下的所有用户
     * @param operationStatisticsDTO
     * @return
     */
    PageUtils queryUser(OperationStatisticsDTO operationStatisticsDTO);

    /**
     * 运营统计
     * @param operationStatisticsDTO
     * @return
     */
    List<MembershipVO> queryMembership(OperationStatisticsDTO operationStatisticsDTO);

    /**
     * 运营统计下的各类型下的下级
     * @param operationStatisticsDTO
     * @return
     */
    PageUtils queryMembershipLower(OperationStatisticsDTO operationStatisticsDTO);

    /**
     * 运营统计导出
     * @param request
     * @param response
     * @throws NormalException
     */
    void exportMembershipLowerExcel(HttpServletRequest request, HttpServletResponse response) throws NormalException;
}
